package com.bzg.baseSpringComponent.typeConverter;

import org.springframework.beans.SimpleTypeConverter;
import org.springframework.core.convert.support.GenericConversionService;

/**
 * spring提供的TypeConverter并不是一种类型转换器，而是一种上层工具，用于统一管理PropertyEditor和Converter
 * 类似ConversionService,springmvc中使用的很多
 * */
public class TypeConverterStyle {
	public static void main(String[] args) {
		SimpleTypeConverter simpleTypeConverter = new SimpleTypeConverter();
		// 加入属性编辑器
		simpleTypeConverter.registerCustomEditor(User.class,new StringToUserPropertyEditor());
		// 加入类型转换器（注意：这里并不支持具体的converter，而是需要ConversionService,因为这样TypeConverter才好管理）
		GenericConversionService genericConversionService = new GenericConversionService();
		genericConversionService.addConverter(new StringToUserConverter());
		simpleTypeConverter.setConversionService(genericConversionService);

		// 类型转换
		User wangwu = simpleTypeConverter.convertIfNecessary("wangwu", User.class);
		System.out.println(wangwu);
	}
}
